#include "cmsis_os2.h"
#include "lvgl.h"


extern osMutexId_t LvglMutexHandle;

void StartLvglTask(void *argument)
{
    osMutexAcquire(LvglMutexHandle, osWaitForever);

    lv_obj_t* lv_bar1 = lv_bar_create(lv_scr_act());    /* 创建进度条1 */
    lv_obj_set_style_bg_color(lv_bar1, lv_color_black(), LV_PART_MAIN | LV_STATE_DEFAULT);
    lv_obj_set_style_bg_color(lv_bar1, lv_palette_main(LV_PALETTE_RED), LV_PART_INDICATOR | LV_STATE_DEFAULT);
    lv_obj_set_size(lv_bar1, 200, 20);                  /* 设置进度条1的大小，宽度大于高度，水平方向 */
    lv_obj_align(lv_bar1, LV_ALIGN_CENTER, 0, 0);       /* 设置进度条1的对齐模式 */
    lv_bar_set_range(lv_bar1, 0, 100);                  /* 设置进度条1的范围 */
    lv_bar_set_value(lv_bar1, 100, LV_ANIM_OFF);        /* 设置进度条1的当前值，不开启动画 */

    lv_obj_t* lv_bar2 = lv_bar_create(lv_scr_act());    /* 创建进度条2 */
    lv_obj_set_style_bg_color(lv_bar2, lv_color_black(), LV_STATE_DEFAULT);
    lv_obj_set_style_bg_color(lv_bar2, lv_palette_main(LV_PALETTE_BLUE), LV_STATE_DEFAULT);
    lv_obj_set_size(lv_bar2, 20, 200);                  /* 设置进度条2的大小，宽度小于高度，垂直方向 */
    lv_obj_align_to(lv_bar2, lv_bar1, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);  /* 设置对齐模式 */
    lv_bar_set_range(lv_bar2, 0, 100);
    lv_obj_set_style_anim_time(lv_bar2, 5000, LV_STATE_DEFAULT);        /* 设置动画时间：5s */
    lv_bar_set_value(lv_bar2, 100, LV_ANIM_ON);         /* 设置进度条2的当前值，开启动画 */

    osMutexRelease(LvglMutexHandle);

    for(;;)
    {
        osMutexAcquire(LvglMutexHandle, osWaitForever);
        lv_timer_handler();
        osMutexRelease(LvglMutexHandle);
        osDelay(5);
    }
}
